package com.smartum.mpr.model;

import java.util.Set;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;

public class UploadedImage extends Image {

	private static final long serialVersionUID = 1L;

	@JsonProperty("comments")
	private Set<UploadedImageComment> comments;

	//Like
	@JsonIgnore
	private Set<UploadedImageLike> likes;

	//Sexy
	@JsonIgnore
	private Set<UploadedImageSexy> sexys;

	//Odd
	@JsonIgnore
	private Set<UploadedImageOdd> odds;

	//Hoax
	@JsonIgnore
	private Set<UploadedImageHoax> hoaxs;

	//Gangster
	@JsonIgnore
	private Set<UploadedImageGangster> gangsters;

	//Type
	@JsonIgnore
	private Set<UploadedImageType> types;

	//Sad
	@JsonIgnore
	private Set<UploadedImageSad> sads;

	//Classys
	@JsonIgnore
	private Set<UploadedImageClassy> classys;

	@JsonIgnore
	private UploadedImageStatus status;

	@JsonProperty("liked")
	private boolean liked;

	@JsonProperty("likes")
	private int likesAmount;

	@JsonProperty("sexy")
	private boolean sexy;

	@JsonProperty("sexys")
	private int sexysAmount;

	@JsonProperty("gangster")
	private boolean gangster;

	@JsonProperty("gangsters")
	private int gangstersAmount;

	@JsonProperty("ood")
	private boolean odd;

	@JsonProperty("odds")
	private int oddsAmount;

	@JsonProperty("hoax")
	private boolean hoax;

	@JsonProperty("hoaxs")
	private int hoaxsAmount;

	@JsonProperty("classy")
	private boolean classy;

	@JsonProperty("classys")
	private int classysAmount;

	@JsonProperty("type")
	private boolean typed;

	@JsonProperty("types")
	private int typesAmount;

	@JsonProperty("sad")
	private boolean sad;

	@JsonProperty("sads")
	private int sadsAmount;

	@JsonProperty("image_url_little")
	private String littleImagePath;



	public boolean isLiked() {
		return liked;
	}

	public void setLiked(boolean liked) {
		this.liked = liked;
	}

	public boolean isSexy() {
		return sexy;
	}

	public void setSexy(boolean sexy) {
		this.sexy = sexy;
	}

	public boolean isGangster() {
		return gangster;
	}

	public void setGangster(boolean gangster) {
		this.gangster = gangster;
	}

	public boolean isOdd() {
		return odd;
	}

	public void setOdd(boolean odd) {
		this.odd = odd;
	}

	public boolean isHoax() {
		return hoax;
	}

	public void setHoax(boolean hoax) {
		this.hoax = hoax;
	}

	public boolean isClassy() {
		return classy;
	}

	public void setClassy(boolean classy) {
		this.classy = classy;
	}

	public boolean isTyped() {
		return typed;
	}

	public void setTyped(boolean typed) {
		this.typed = typed;
	}

	public boolean isSad() {
		return sad;
	}

	public void setSad(boolean sad) {
		this.sad = sad;
	}

	public UploadedImageStatus getStatus() {
		return status;
	}

	public void setStatus(UploadedImageStatus status) {
		this.status = status;
	}

	public String getLittleImagePath() {
		return littleImagePath;
	}

	public void setLittleImagePath(String littleImagePath) {
		this.littleImagePath = littleImagePath;
	}

	public Set<UploadedImageComment> getComments() {
		return comments;
	}

	public void setComments(Set<UploadedImageComment> comments) {
		this.comments = comments;
	}

	public Set<UploadedImageLike> getLikes() {
		return likes;
	}

	public Set<UploadedImageSexy> getSexys() {
		return sexys;
	}
	public Set<UploadedImageClassy> getClassys() {
		return classys;
	}
	public Set<UploadedImageOdd> getOdds() {
		return odds;
	}

	public Set<UploadedImageGangster> getGangsters() {
		return gangsters;
	}
	public Set<UploadedImageType> getTypes() {
		return types;
	}

	public Set<UploadedImageHoax> getHoaxs() {
		return hoaxs;
	}

	public Set<UploadedImageSad> getSads() {
		return sads;
	}

	public void setLikes(Set<UploadedImageLike> likes) {
		this.likes = likes;
	}

	public void setSexys(Set<UploadedImageSexy> sexys) {
		this.sexys = sexys;
	}

	public void setGangsters(Set<UploadedImageGangster> gangsters) {
		this.gangsters = gangsters;
	}

	public void setOdds(Set<UploadedImageOdd> odds) {
		this.odds = odds;
	}

	public void setHoaxs(Set<UploadedImageHoax> hoaxs) {
		this.hoaxs = hoaxs;
	}

	public void setClassys(Set<UploadedImageClassy> classys) {
		this.classys = classys;
	}

	public void setTypes(Set<UploadedImageType> types) {
		this.types = types;
	}

	public void setSads(Set<UploadedImageSad> sads) {
		this.sads = sads;
	}



	public int getLikesAmount() {
		if (likes != null) {
			return likes.size();
		} else {
			return 0;
		}
	}
	public int getSexysAmount() {
		if (sexys != null) {
			return sexys.size();
		} else {
			return 0;
		}
	}

	public int getClassysAmount() {
		if (classys != null) {
			return classys.size();
		} else {
			return 0;
		}
	}

	public int getGangstersAmount() {
		if (gangsters != null) {
			return gangsters.size();
		} else {
			return 0;
		}
	}

	public int getOddsAmount() {
		if (odds != null) {
			return odds.size();
		} else {
			return 0;
		}
	}

	public int getHoaxsAmount() {
		if (hoaxs != null) {
			return hoaxs.size();
		} else {
			return 0;
		}
	}

	public int getTypesAmount() {
		if (types != null) {
			return types.size();
		} else {
			return 0;
		}
	}

	public int getSadsAmount() {
		if (sads != null) {
			return sads.size();
		} else {
			return 0;
		}
	}

	public void setGangstersAmount(int gangstersAmount) {
		this.gangstersAmount = gangstersAmount;
	}

	public void setLikesAmount(int likesAmount) {
		this.likesAmount = likesAmount;
	}

	public void setSexysAmount(int sexysAmount) {
		this.sexysAmount = sexysAmount;
	}

	public void setOddsAmount(int oddsAmount) {
		this.oddsAmount = oddsAmount;
	}

	public void setHoaxsAmount(int hoaxsAmount) {
		this.hoaxsAmount = hoaxsAmount;
	}

	public void setClassysAmount(int classysAmount) {
		this.classysAmount = classysAmount;
	}

	public void setTypesAmount(int typesAmount) {
		this.typesAmount = typesAmount;
	}

	public void setSadsAmount(int sadsAmount) {
		this.sadsAmount = sadsAmount;
	}
}
